# -*-coding:utf-8 -*-
'单页面数据爬取'

import requests
from lxml import etree
import os

# 第一步，找到要爬取的网页地址
url = 'https://www.bilibili.com/v/popular/rank/all'


# 第二步，爬虫的函数
def getPageInfo():
    # response变量，接收url的响应
    response = requests.get(url=url)
    # 设置响应编码
    response.encoding = 'utf-8'
    # 使用etree.HTML解析响应内容
    tree = etree.HTML(response.text)
    # 获取到页面中ul标签（其中，ul的class为rank-list）中的所有li标签
    list = tree.xpath("//ul[@class='rank-list']/li")
    for li in list:
        # 第二个div标签里面的，第二个div标签，里面的a标签，里面的文本
        title = li.xpath("./div[2]/div[2]/a/text()")
        result = ''
        if len(title) > 0:
            # strip移除前后空格（此处不加也可以
            result = result + title[0].strip() + '\n'
        print(result)
        # 保存爬取的数据到本目录下的info.txt文件里
        file = os.getcwd() + '/requests/study/info.txt'
        # 打开文件，并采取【追加】的方式存入（因为用的是for循环）
        # 并采用utf-8编码
        output = open(file, 'a', encoding='utf-8')
        # 写入内容
        output.write(result)
        # 关闭文件
        output.close()


if __name__ == '__main__':
    getPageInfo()
